home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / JMenu.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  14.5 KB  |  659 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Dimension;
  6. import java.awt.Point;
  7. import java.awt.Toolkit;
  8. import java.awt.event.InputEvent;
  9. import java.awt.event.KeyEvent;
  10. import java.beans.PropertyChangeListener;
  11. import java.io.IOException;
  12. import java.io.ObjectOutputStream;
  13. import java.util.Enumeration;
  14. import java.util.Hashtable;
  15. import java.util.Vector;
  16. import javax.accessibility.Accessible;
  17. import javax.accessibility.AccessibleContext;
  18. import javax.accessibility.AccessibleState;
  19. import javax.swing.event.ChangeListener;
  20. import javax.swing.event.MenuEvent;
  21. import javax.swing.event.MenuListener;
  22. import javax.swing.plaf.MenuItemUI;
  23. import javax.swing.plaf.PopupMenuUI;
  24.  
  25. public class JMenu extends JMenuItem implements Accessible, MenuElement {
  26.    private static final String uiClassID = "MenuUI";
  27.    private JPopupMenu popupMenu;
  28.    private ChangeListener menuChangeListener;
  29.    private MenuEvent menuEvent;
  30.    private static Hashtable listenerRegistry = null;
  31.    private int delay;
  32.    protected WinListener popupListener;
  33.    // $FF: synthetic field
  34.    static Class class$javax$swing$event$MenuListener;
  35.  
  36.    public JMenu() {
  37.       this("");
  38.    }
  39.  
  40.    public JMenu(String var1) {
  41.       super(var1);
  42.       this.menuChangeListener = null;
  43.       this.menuEvent = null;
  44.    }
  45.  
  46.    public JMenu(String var1, boolean var2) {
  47.       this(var1);
  48.    }
  49.  
  50.    // $FF: synthetic method
  51.    static MenuElement[] access$0(JMenu var0, JMenu var1) {
  52.       return var0.buildMenuElementArray(var1);
  53.    }
  54.  
  55.    public Component add(Component var1) {
  56.       if (var1 instanceof JComponent) {
  57.          AccessibleContext var2 = ((JComponent)var1).getAccessibleContext();
  58.          if (var2 != null) {
  59.             var2.setAccessibleParent(this);
  60.          }
  61.       }
  62.  
  63.       this.ensurePopupMenuCreated();
  64.       this.popupMenu.add(var1);
  65.       return var1;
  66.    }
  67.  
  68.    public JMenuItem add(String var1) {
  69.       return this.add(new JMenuItem(var1));
  70.    }
  71.  
  72.    public JMenuItem add(Action var1) {
  73.       JMenuItem var2 = new JMenuItem((String)var1.getValue("Name"), (Icon)var1.getValue("SmallIcon"));
  74.       ((AbstractButton)var2).setHorizontalTextPosition(4);
  75.       ((AbstractButton)var2).setVerticalTextPosition(0);
  76.       var2.setEnabled(var1.isEnabled());
  77.       ((AbstractButton)var2).addActionListener(var1);
  78.       this.add(var2);
  79.       this.registerMenuItemForAction(var2, var1);
  80.       return var2;
  81.    }
  82.  
  83.    public JMenuItem add(JMenuItem var1) {
  84.       AccessibleContext var2 = var1.getAccessibleContext();
  85.       var2.setAccessibleParent(this);
  86.       this.ensurePopupMenuCreated();
  87.       return this.popupMenu.add(var1);
  88.    }
  89.  
  90.    public void addMenuListener(MenuListener var1) {
  91.       super.listenerList.add(class$javax$swing$event$MenuListener != null ? class$javax$swing$event$MenuListener : (class$javax$swing$event$MenuListener = class$("javax.swing.event.MenuListener")), var1);
  92.    }
  93.  
  94.    public void addSeparator() {
  95.       this.ensurePopupMenuCreated();
  96.       this.popupMenu.addSeparator();
  97.    }
  98.  
  99.    private MenuElement[] buildMenuElementArray(JMenu var1) {
  100.       Vector var2 = new Vector();
  101.       Object var3 = var1.getPopupMenu();
  102.  
  103.       while(true) {
  104.          while(!(var3 instanceof JPopupMenu)) {
  105.             if (var3 instanceof JMenu) {
  106.                JMenu var5 = (JMenu)var3;
  107.                var2.insertElementAt(var5, 0);
  108.                var3 = ((Component)var5).getParent();
  109.             } else if (var3 instanceof JMenuBar) {
  110.                JMenuBar var6 = (JMenuBar)var3;
  111.                var2.insertElementAt(var6, 0);
  112.                MenuElement[] var7 = new MenuElement[var2.size()];
  113.                var2.copyInto(var7);
  114.                return var7;
  115.             }
  116.          }
  117.  
  118.          JPopupMenu var4 = (JPopupMenu)var3;
  119.          var2.insertElementAt(var4, 0);
  120.          var3 = var4.getInvoker();
  121.       }
  122.    }
  123.  
  124.    // $FF: synthetic method
  125.    static Class class$(String var0) {
  126.       try {
  127.          return Class.forName(var0);
  128.       } catch (ClassNotFoundException var2) {
  129.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  130.       }
  131.    }
  132.  
  133.    private void clearListenerRegistry() {
  134.       if (listenerRegistry != null) {
  135.          Enumeration var1 = listenerRegistry.keys();
  136.  
  137.          while(var1.hasMoreElements()) {
  138.             Object var2 = var1.nextElement();
  139.             if (var2 == this) {
  140.                JMenuItem var3 = (JMenuItem)var2;
  141.                ActionChangedListener var4 = (ActionChangedListener)listenerRegistry.get(var3);
  142.                if (var4 != null) {
  143.                   Action var5 = (Action)listenerRegistry.get(var4);
  144.                   if (var5 != null) {
  145.                      ((AbstractButton)var3).removeActionListener(var5);
  146.                      var5.removePropertyChangeListener(var4);
  147.                   }
  148.  
  149.                   var4.setTarget((JMenuItem)null);
  150.                }
  151.             }
  152.          }
  153.  
  154.          listenerRegistry.clear();
  155.       }
  156.  
  157.    }
  158.  
  159.    protected PropertyChangeListener createActionChangeListener(JMenuItem var1) {
  160.       return new ActionChangedListener(this, var1);
  161.    }
  162.  
  163.    private ChangeListener createMenuChangeListener() {
  164.       return new MenuChangeListener(this);
  165.    }
  166.  
  167.    protected WinListener createWinListener(JPopupMenu var1) {
  168.       return new WinListener(this, var1);
  169.    }
  170.  
  171.    public void doClick(int var1) {
  172.       MenuElement[] var2 = this.buildMenuElementArray(this);
  173.       MenuSelectionManager.defaultManager().setSelectedPath(var2);
  174.    }
  175.  
  176.    private void ensurePopupMenuCreated() {
  177.       if (this.popupMenu == null) {
  178.          this.popupMenu = new JPopupMenu();
  179.          this.popupMenu.setInvoker(this);
  180.          this.popupListener = this.createWinListener(this.popupMenu);
  181.          this.popupMenu.addPopupMenuListener(new 1(this));
  182.       }
  183.  
  184.    }
  185.  
  186.    protected void fireMenuCanceled() {
  187.       Object[] var1 = super.listenerList.getListenerList();
  188.  
  189.       for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
  190.          if (var1[var2] == (class$javax$swing$event$MenuListener != null ? class$javax$swing$event$MenuListener : (class$javax$swing$event$MenuListener = class$("javax.swing.event.MenuListener")))) {
  191.             if (var1[var2 + 1] == null) {
  192.                throw new Error(((AbstractButton)this).getText() + " has a NULL Listener!! " + var2);
  193.             }
  194.  
  195.             if (this.menuEvent == null) {
  196.                this.menuEvent = new MenuEvent(this);
  197.             }
  198.  
  199.             ((MenuListener)var1[var2 + 1]).menuCanceled(this.menuEvent);
  200.          }
  201.       }
  202.  
  203.    }
  204.  
  205.    protected void fireMenuDeselected() {
  206.       Object[] var1 = super.listenerList.getListenerList();
  207.  
  208.       for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
  209.          if (var1[var2] == (class$javax$swing$event$MenuListener != null ? class$javax$swing$event$MenuListener : (class$javax$swing$event$MenuListener = class$("javax.swing.event.MenuListener")))) {
  210.             if (var1[var2 + 1] == null) {
  211.                throw new Error(((AbstractButton)this).getText() + " has a NULL Listener!! " + var2);
  212.             }
  213.  
  214.             if (this.menuEvent == null) {
  215.                this.menuEvent = new MenuEvent(this);
  216.             }
  217.  
  218.             ((MenuListener)var1[var2 + 1]).menuDeselected(this.menuEvent);
  219.          }
  220.       }
  221.  
  222.    }
  223.  
  224.    protected void fireMenuSelected() {
  225.       Object[] var1 = super.listenerList.getListenerList();
  226.  
  227.       for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
  228.          if (var1[var2] == (class$javax$swing$event$MenuListener != null ? class$javax$swing$event$MenuListener : (class$javax$swing$event$MenuListener = class$("javax.swing.event.MenuListener")))) {
  229.             if (var1[var2 + 1] == null) {
  230.                throw new Error(((AbstractButton)this).getText() + " has a NULL Listener!! " + var2);
  231.             }
  232.  
  233.             if (this.menuEvent == null) {
  234.                this.menuEvent = new MenuEvent(this);
  235.             }
  236.  
  237.             ((MenuListener)var1[var2 + 1]).menuSelected(this.menuEvent);
  238.          }
  239.       }
  240.  
  241.    }
  242.  
  243.    public AccessibleContext getAccessibleContext() {
  244.       if (super.accessibleContext == null) {
  245.          super.accessibleContext = new AccessibleJMenu(this);
  246.       }
  247.  
  248.       return super.accessibleContext;
  249.    }
  250.  
  251.    public Component getComponent() {
  252.       return this;
  253.    }
  254.  
  255.    public int getDelay() {
  256.       return this.delay;
  257.    }
  258.  
  259.    public JMenuItem getItem(int var1) {
  260.       if (var1 < 0) {
  261.          throw new IllegalArgumentException("index less than zero.");
  262.       } else {
  263.          Component var2 = this.getMenuComponent(var1);
  264.          if (var2 instanceof JMenuItem) {
  265.             JMenuItem var3 = (JMenuItem)var2;
  266.             return var3;
  267.          } else {
  268.             return null;
  269.          }
  270.       }
  271.    }
  272.  
  273.    public int getItemCount() {
  274.       return this.getMenuComponentCount();
  275.    }
  276.  
  277.    public Component getMenuComponent(int var1) {
  278.       return this.popupMenu != null ? this.popupMenu.getComponent(var1) : null;
  279.    }
  280.  
  281.    public int getMenuComponentCount() {
  282.       int var1 = 0;
  283.       if (this.popupMenu != null) {
  284.          var1 = this.popupMenu.getComponentCount();
  285.       }
  286.  
  287.       return var1;
  288.    }
  289.  
  290.    public Component[] getMenuComponents() {
  291.       return this.popupMenu != null ? this.popupMenu.getComponents() : new Component[0];
  292.    }
  293.  
  294.    public JPopupMenu getPopupMenu() {
  295.       this.ensurePopupMenuCreated();
  296.       return this.popupMenu;
  297.    }
  298.  
  299.    private Point getPopupMenuOrigin() {
  300.       int var1 = 0;
  301.       int var2 = 0;
  302.       JPopupMenu var3 = this.getPopupMenu();
  303.       Dimension var4 = Toolkit.getDefaultToolkit().getScreenSize();
  304.       Dimension var5 = ((Component)this).getSize();
  305.       Dimension var6 = ((Component)var3).getSize();
  306.       if (var6.width == 0) {
  307.          var6 = ((JComponent)var3).getPreferredSize();
  308.       }
  309.  
  310.       Point var7 = ((Component)this).getLocationOnScreen();
  311.       Container var8 = ((Component)this).getParent();
  312.       if (var8 instanceof JPopupMenu) {
  313.          if (SwingUtilities.isLeftToRight(this)) {
  314.             if (var7.x + var5.width + var6.width < var4.width) {
  315.                var1 = var5.width;
  316.             } else {
  317.                var1 = -var6.width;
  318.             }
  319.          } else if (var7.x < var6.width) {
  320.             var1 = var5.width;
  321.          } else {
  322.             var1 = -var6.width;
  323.          }
  324.  
  325.          if (var7.y + var6.height < var4.height) {
  326.             var2 = 0;
  327.          } else {
  328.             var2 = var5.height - var6.height;
  329.          }
  330.       } else {
  331.          if (SwingUtilities.isLeftToRight(this)) {
  332.             if (var7.x + var6.width < var4.width) {
  333.                var1 = 0;
  334.             } else {
  335.                var1 = var5.width - var6.width;
  336.             }
  337.          } else if (var7.x + var5.width < var6.width) {
  338.             var1 = 0;
  339.          } else {
  340.             var1 = var5.width - var6.width;
  341.          }
  342.  
  343.          if (var7.y + var5.height + var6.height < var4.height) {
  344.             var2 = var5.height;
  345.          } else {
  346.             var2 = -var6.height;
  347.          }
  348.       }
  349.  
  350.       return new Point(var1, var2);
  351.    }
  352.  
  353.    public MenuElement[] getSubElements() {
  354.       if (this.popupMenu == null) {
  355.          return new MenuElement[0];
  356.       } else {
  357.          MenuElement[] var1 = new MenuElement[]{this.popupMenu};
  358.          return var1;
  359.       }
  360.    }
  361.  
  362.    public String getUIClassID() {
  363.       return "MenuUI";
  364.    }
  365.  
  366.    public void insert(String var1, int var2) {
  367.       if (var2 < 0) {
  368.          throw new IllegalArgumentException("index less than zero.");
  369.       } else {
  370.          this.ensurePopupMenuCreated();
  371.          this.popupMenu.insert(new JMenuItem(var1), var2);
  372.       }
  373.    }
  374.  
  375.    public JMenuItem insert(Action var1, int var2) {
  376.       if (var2 < 0) {
  377.          throw new IllegalArgumentException("index less than zero.");
  378.       } else {
  379.          this.ensurePopupMenuCreated();
  380.          JMenuItem var3 = new JMenuItem((String)var1.getValue("Name"), (Icon)var1.getValue("SmallIcon"));
  381.          ((AbstractButton)var3).setHorizontalTextPosition(4);
  382.          ((AbstractButton)var3).setVerticalTextPosition(0);
  383.          var3.setEnabled(var1.isEnabled());
  384.          ((AbstractButton)var3).addActionListener(var1);
  385.          this.popupMenu.insert(var3, var2);
  386.          this.registerMenuItemForAction(var3, var1);
  387.          return var3;
  388.       }
  389.    }
  390.  
  391.    public JMenuItem insert(JMenuItem var1, int var2) {
  392.       if (var2 < 0) {
  393.          throw new IllegalArgumentException("index less than zero.");
  394.       } else {
  395.          AccessibleContext var3 = var1.getAccessibleContext();
  396.          var3.setAccessibleParent(this);
  397.          this.ensurePopupMenuCreated();
  398.          this.popupMenu.insert(var1, var2);
  399.          return var1;
  400.       }
  401.    }
  402.  
  403.    public void insertSeparator(int var1) {
  404.       if (var1 < 0) {
  405.          throw new IllegalArgumentException("index less than zero.");
  406.       } else {
  407.          this.ensurePopupMenuCreated();
  408.          this.popupMenu.insert(new JPopupMenu.Separator(), var1);
  409.       }
  410.    }
  411.  
  412.    public boolean isMenuComponent(Component var1) {
  413.       if (var1 == this) {
  414.          return true;
  415.       } else {
  416.          if (var1 instanceof JPopupMenu) {
  417.             JPopupMenu var2 = (JPopupMenu)var1;
  418.             if (var2 == this.getPopupMenu()) {
  419.                return true;
  420.             }
  421.          }
  422.  
  423.          int var7 = this.getMenuComponentCount();
  424.          Component[] var3 = this.getMenuComponents();
  425.  
  426.          for(int var4 = 0; var4 < var7; ++var4) {
  427.             Component var5 = var3[var4];
  428.             if (var5 == var1) {
  429.                return true;
  430.             }
  431.  
  432.             if (var5 instanceof JMenu) {
  433.                JMenu var6 = (JMenu)var5;
  434.                if (var6.isMenuComponent(var1)) {
  435.                   return true;
  436.                }
  437.             }
  438.          }
  439.  
  440.          return false;
  441.       }
  442.    }
  443.  
  444.    public boolean isPopupMenuVisible() {
  445.       this.ensurePopupMenuCreated();
  446.       return this.popupMenu.isVisible();
  447.    }
  448.  
  449.    public boolean isSelected() {
  450.       return ((AbstractButton)this).getModel().isSelected();
  451.    }
  452.  
  453.    public boolean isTearOff() {
  454.       throw new Error("boolean isTearOff() {} not yet implemented");
  455.    }
  456.  
  457.    public boolean isTopLevelMenu() {
  458.       return ((Component)this).getParent() instanceof JMenuBar;
  459.    }
  460.  
  461.    public void menuSelectionChanged(boolean var1) {
  462.       this.setSelected(var1);
  463.    }
  464.  
  465.    protected String paramString() {
  466.       return super.paramString();
  467.    }
  468.  
  469.    protected void processKeyEvent(KeyEvent var1) {
  470.       MenuSelectionManager.defaultManager().processKeyEvent(var1);
  471.       if (!((InputEvent)var1).isConsumed()) {
  472.          if (this.isSelected() && (var1.getKeyCode() == 9 || var1.getKeyChar() == '\t')) {
  473.             if ((Boolean)UIManager.get("Menu.consumesTabs") == Boolean.TRUE) {
  474.                ((InputEvent)var1).consume();
  475.                return;
  476.             }
  477.  
  478.             MenuSelectionManager.defaultManager().clearSelectedPath();
  479.          }
  480.  
  481.          super.processKeyEvent(var1);
  482.       }
  483.    }
  484.  
  485.    private void registerMenuItemForAction(JMenuItem var1, Action var2) {
  486.       PropertyChangeListener var3 = this.createActionChangeListener(var1);
  487.       if (listenerRegistry == null) {
  488.          listenerRegistry = new Hashtable();
  489.       }
  490.  
  491.       listenerRegistry.put(var1, var3);
  492.       listenerRegistry.put(var3, var2);
  493.       var2.addPropertyChangeListener(var3);
  494.    }
  495.  
  496.    public void remove(int var1) {
  497.       if (var1 < 0) {
  498.          throw new IllegalArgumentException("index less than zero.");
  499.       } else if (var1 > this.getItemCount()) {
  500.          throw new IllegalArgumentException("index greater than the number of items.");
  501.       } else {
  502.          JMenuItem var2 = this.getItem(var1);
  503.          if (var2 instanceof JMenuItem) {
  504.             this.unregisterMenuItemForAction(var2);
  505.          }
  506.  
  507.          if (this.popupMenu != null) {
  508.             this.popupMenu.remove(var1);
  509.          }
  510.  
  511.       }
  512.    }
  513.  
  514.    public void remove(Component var1) {
  515.       if (this.popupMenu != null) {
  516.          this.popupMenu.remove(var1);
  517.       }
  518.  
  519.    }
  520.  
  521.    public void remove(JMenuItem var1) {
  522.       if (this.popupMenu != null) {
  523.          this.popupMenu.remove(var1);
  524.       }
  525.  
  526.       this.unregisterMenuItemForAction(var1);
  527.    }
  528.  
  529.    public void removeAll() {
  530.       if (this.popupMenu != null) {
  531.          this.popupMenu.removeAll();
  532.       }
  533.  
  534.       this.clearListenerRegistry();
  535.    }
  536.  
  537.    public void removeMenuListener(MenuListener var1) {
  538.       super.listenerList.remove(class$javax$swing$event$MenuListener != null ? class$javax$swing$event$MenuListener : (class$javax$swing$event$MenuListener = class$("javax.swing.event.MenuListener")), var1);
  539.    }
  540.  
  541.    public void setAccelerator(KeyStroke var1) {
  542.       throw new Error("setAccelerator() is not defined for JMenu.  Use setMnemonic() instead.");
  543.    }
  544.  
  545.    public void setDelay(int var1) {
  546.       if (var1 < 0) {
  547.          throw new IllegalArgumentException("Delay must be a positive integer");
  548.       } else {
  549.          this.delay = var1;
  550.       }
  551.    }
  552.  
  553.    public void setMenuLocation(int var1, int var2) {
  554.       if (this.popupMenu != null) {
  555.          this.popupMenu.setLocation(var1, var2);
  556.       }
  557.  
  558.    }
  559.  
  560.    public void setModel(ButtonModel var1) {
  561.       ButtonModel var2 = ((AbstractButton)this).getModel();
  562.       super.setModel(var1);
  563.       if (var2 != null && this.menuChangeListener != null) {
  564.          var2.removeChangeListener(this.menuChangeListener);
  565.          this.menuChangeListener = null;
  566.       }
  567.  
  568.       super.model = var1;
  569.       if (var1 != null) {
  570.          this.menuChangeListener = this.createMenuChangeListener();
  571.          var1.addChangeListener(this.menuChangeListener);
  572.       }
  573.  
  574.    }
  575.  
  576.    public void setPopupMenuVisible(boolean var1) {
  577.       if (((Component)this).isEnabled()) {
  578.          boolean var2 = this.isPopupMenuVisible();
  579.          if (var1 != var2) {
  580.             this.ensurePopupMenuCreated();
  581.             if (var1 && ((Component)this).isShowing()) {
  582.                Point var3 = this.getPopupMenuOrigin();
  583.                this.getPopupMenu().show(this, var3.x, var3.y);
  584.             } else {
  585.                this.getPopupMenu().setVisible(false);
  586.             }
  587.          }
  588.  
  589.       }
  590.    }
  591.  
  592.    public void setSelected(boolean var1) {
  593.       ButtonModel var2 = ((AbstractButton)this).getModel();
  594.       boolean var3 = var2.isSelected();
  595.       if (super.accessibleContext != null && var3 != var1) {
  596.          if (var1) {
  597.             super.accessibleContext.firePropertyChange("AccessibleState", (Object)null, AccessibleState.SELECTED);
  598.          } else {
  599.             super.accessibleContext.firePropertyChange("AccessibleState", AccessibleState.SELECTED, (Object)null);
  600.          }
  601.       }
  602.  
  603.       if (var1 != var2.isSelected()) {
  604.          ((AbstractButton)this).getModel().setSelected(var1);
  605.       }
  606.  
  607.    }
  608.  
  609.    private Point translateToPopupMenu(int var1, int var2) {
  610.       int var3;
  611.       int var4;
  612.       if (((Component)this).getParent() instanceof JPopupMenu) {
  613.          var3 = var1 - ((Component)this).getSize().width;
  614.          var4 = var2;
  615.       } else {
  616.          var3 = var1;
  617.          var4 = var2 - ((Component)this).getSize().height;
  618.       }
  619.  
  620.       return new Point(var3, var4);
  621.    }
  622.  
  623.    private Point translateToPopupMenu(Point var1) {
  624.       return this.translateToPopupMenu(var1.x, var1.y);
  625.    }
  626.  
  627.    private void unregisterMenuItemForAction(JMenuItem var1) {
  628.       if (listenerRegistry != null) {
  629.          ActionChangedListener var2 = (ActionChangedListener)listenerRegistry.remove(var1);
  630.          if (var2 != null) {
  631.             Action var3 = (Action)listenerRegistry.remove(var2);
  632.             if (var3 != null) {
  633.                ((AbstractButton)var1).removeActionListener(var3);
  634.                var3.removePropertyChangeListener(var2);
  635.             }
  636.  
  637.             var2.setTarget((JMenuItem)null);
  638.          }
  639.       }
  640.  
  641.    }
  642.  
  643.    public void updateUI() {
  644.       ((JMenuItem)this).setUI((MenuItemUI)UIManager.getUI(this));
  645.       if (this.popupMenu != null) {
  646.          this.popupMenu.setUI((PopupMenuUI)UIManager.getUI(this.popupMenu));
  647.       }
  648.  
  649.    }
  650.  
  651.    private void writeObject(ObjectOutputStream var1) throws IOException {
  652.       var1.defaultWriteObject();
  653.       if (super.ui != null && this.getUIClassID().equals("MenuUI")) {
  654.          super.ui.installUI(this);
  655.       }
  656.  
  657.    }
  658. }
  659.